# Q. What is this file?
# A. This file contains options which allow you to configure your multiworld experience while allowing
#    others to play how they want as well.
#
# Q. How do I use it?
# A. The options in this file are weighted. This means the higher number you assign to a value, the
#    more chances you have for that option to be chosen. For example, an option like this:
#
#    map_shuffle:
#      on: 5
#      off: 15
#
#    Means you have 5 chances for map shuffle to occur, and 15 chances for map shuffle to be turned
#    off.
#
# Q. I've never seen a file like this before. What characters am I allowed to use?
# A. This is a .yaml file. You are allowed to use most characters.
#    To test if your yaml is valid or not, you can use this website:
#        http://www.yamllint.com/
#    You can also verify that your Archipelago options are valid at this site:
#        https://archipelago.gg/check

# Your name in-game, limited to 16 characters.
#     {player} will be replaced with the player's slot number.
#     {PLAYER} will be replaced with the player's slot number, if that slot number is greater than 1.
#     {number} will be replaced with the counter value of the name.
#     {NUMBER} will be replaced with the counter value of the name, if the counter value is greater than 1.
name: Player{number}

# Used to describe your yaml. Useful if you have multiple files.
description: Default Cowtastic Cafe Template

game: Cowtastic Cafe
requires:
  version: 0.6.7 # Version of Archipelago required for this yaml to work as expected.

Cowtastic Cafe:
  ################
  # Game Options #
  ################
  progression_balancing:
    # A system that can move progression earlier, to try and prevent the player from getting stuck and bored early.
    # 
    # A lower setting means more getting stuck. A higher setting means less getting stuck.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 99
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-99: 0 # random value between 0 and 99
    disabled: 0 # equivalent to 0
    normal: 50 # equivalent to 50
    extreme: 0 # equivalent to 99

  accessibility:
    # Set rules for reachability of your items/locations.
    # 
    # **Full:** ensure everything can be reached and acquired.
    # 
    # **Minimal:** ensure what is needed to reach your goal can be acquired.
    full: 50
    minimal: 0

  starting_ingredients:
    # Which ingredients you begin the run with already unlocked (precollected).
    # Valid values are the purchasable ingredients: Espresso, Coffee, Chocolate,
    # Tea, Milk, Cream, Sugar, Ice, Boba, Sprinkles, Whipped Cream, Caramel Sauce,
    # Cocoa Powder. (Breast Milk is always available and cannot be listed here.)
    # At least one 'base' ingredient — one a drink can actually be built on
    # (Espresso, Coffee, Chocolate, Tea, Milk, or Cream) — MUST be included, or no
    # order can be fulfilled and generation fails. Sugar, Ice, Boba, and the other
    # ingredients are add-ons only; they are never a drink's base, so a start made
    # of just those is invalid. Defaults to Milk + Coffee.
    ['Coffee', 'Milk']

  drinks_per_check:
    # How many drinks with each ingredient you must serve to earn one check.
    # Example: with 3 drinks per check and 3 checks per ingredient,
    # checks fire when you've served 3, 6, and 9 drinks with that ingredient.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 1
    # Maximum value is 20
    3: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-1-20: 0 # random value between 1 and 20

  checks_per_ingredient:
    # How many location checks exist per ingredient (14 ingredients have serve
    # checks: the 13 unlockable ones plus always-available Breast Milk).
    # At the default of 4, with 10 shop slots, all cosmetics fit in the pool with
    # room to spare. More than that pads the game out with filler; fewer checks
    # per ingredient will triage away cosmetics (and then useful items).
    # Minimum 2: below that the mandatory items don't fit (14*2 + 10 = 38 >= 31).
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 2
    # Maximum value is 10
    4: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-2-10: 0 # random value between 2 and 10

  shop_locations:
    # How many shop location checks exist across the run.
    # The in-game shop shows the next 6 unpurchased slots at a time;
    # buying one sends a check and reveals the next slot in the queue.
    # Capped at 25: slot gating needs max(2, ceil((slot+1)/2)) ingredients, so
    # slot 25 already requires all 13 unlockable ingredients and slot 26 would
    # need 14 - unreachable no matter what.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 25
    10: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-25: 0 # random value between 0 and 25

  extra_candy:
    # Additional Stretchy Candy (milk-capacity upgrades) added to the pool
    # beyond the amount required to win. The goal is the in-game 'barista
    # overflows' good end; in Arcade mode 19 candy are required to grow the
    # barista enough to trigger it. Extras are a buffer and let you keep growing
    # past the requirement.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 30
    1: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-30: 0 # random value between 0 and 30

  milk_flow:
    # How many 'Milk Flow Increase' items are in the pool. Each one raises the
    # barista's actual milk production rate. Set to 0 to have none.
    # Note: useful and cosmetic items are only added until locations are filled, so
    # high values here combined with low check counts may result in fewer items
    # being placed than requested.
    # Also note: There is currently no way to lower this flow once received. Only
    # play with the max flow you're willing to play with.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 20
    5: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-20: 0 # random value between 0 and 20

  shop_base_price:
    # Starting price (in coins) for the first shop slot.
    # Logic gating uses slot position, not actual price, so changing this only
    # affects in-game cost, not item accessibility.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 10
    # Maximum value is 100
    50: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-10-100: 0 # random value between 10 and 100

  shop_price_step:
    # How much each subsequent shop slot costs compared to the previous one.
    # Slot N costs base + step*(N-1), capped at 550.
    # Logic gating is based on slot position (every 2 slots = 1 more ingredient
    # required), so changing this only affects in-game cost.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 5
    # Maximum value is 50
    25: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-5-50: 0 # random value between 5 and 50

  min_drink_quality:
    # Minimum drink rating required to earn a serve-location check.
    # Perfect is the strictest; Okay is the most lenient.
    perfect: 0
    great: 0
    good: 50
    okay: 0

  death_link:
    # When you die, everyone who enabled death link dies. Of course, the reverse is true too.
    'false': 50
    'true': 0

  death_link_send_quality:
    # When DeathLink is enabled, serving a drink rated at this quality or
    # worse sends a death to all DeathLink participants. Ratings run from best to
    # worst: Great, Good, Okay, Meh, Bad, Ruined. (Perfect is excluded — it can
    # never be a death trigger.)
    great: 0
    good: 0
    okay: 0
    meh: 50
    bad: 0
    ruined: 0

  death_link_penalty:
    # How much happiness the barista loses when a DeathLink is received
    # from another player. 0 = no effect; 100 = full happiness wipe.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 100
    20: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-100: 0 # random value between 0 and 100

  censorship_mode:
    # Hide the mod's lewd item/location names from the multiworld. Purely a
    # naming/display change — there is NO effect on gameplay, logic, IDs, or which
    # items go where. When on:
    #   - 'Serve Breast Milk #n' locations become 'Serve Secret Ingredient #n'
    #   - cosmetics become 'Cosmetic Top/Pants/Extra #n'
    #   - the 'Milk Flow Increase' item becomes 'Supply Rate Increase'
    # Per-slot: only your slot's names are censored in the spoiler/trackers; other
    # players' Cowtastic slots are unaffected by your setting.
    'false': 50
    'true': 0

  allow_milk_rate_adjustment:
    # Let the player manually control the milk production rate. When on, the two
    # left-hand shop buttons return to being milk-rate up/down controls (free to
    # use, in 5 ml steps); the other four buttons remain randomizer shop slots.
    # The rate floor stays at 1 step (5 ml); the ceiling is (items received + 1)
    # steps, so each 'Milk Flow Increase' item both raises the cap AND bumps the
    # current rate up one notch (the first item already grants headroom above the
    # floor). Purely a client-side control change; no effect on generation,
    # logic, or item placement.
    'false': 50
    'true': 0

  scout_shop:
    # Automatically create scout hints for the randomizer shop's contents, so
    # you (and the item owners) can see what each shop slot will hand out without
    # spending hint points.
    #   - none:    no shop scouting.
    #   - visible: hint only the shop slots currently on display (the cheapest
    #              unpurchased ones); as you buy and new slots surface, they're
    #              hinted too.
    #   - all:     hint every shop slot up front.
    # Purely a client-side hint convenience; no effect on generation, logic, or
    # item placement.
    none: 0
    visible: 50
    all: 0

  ###########################
  # Item & Location Options #
  ###########################
  local_items:
    # Forces these items to be in their native world.
    []

  non_local_items:
    # Forces these items to be outside their native world.
    []

  start_inventory:
    # Start with the specified amount of these items. Example: "Bomb: 1"
    {}

  start_hints:
    # Start with these item's locations prefilled into the ``!hint`` command.
    []

  start_location_hints:
    # Start with these locations and their item prefilled into the ``!hint`` command.
    []

  exclude_locations:
    # Prevent these locations from having an important item.
    []

  priority_locations:
    # Prevent these locations from having an unimportant item.
    []

  item_links:
    # Share part of your item pool with other players.
    []

  plando_items:
    # Generic items plando.
    []
